home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Deutsche Edition 1
/
Deutsche Edition 1.iso
/
amok
/
051-060
/
amok58
/
kme
/
iconify.mod
< prev
next >
Wrap
Text File
|
1993-11-04
|
2KB
|
80 lines
(*---------------------------------------------------------------------------
:Program. Iconify
:Author. Steffen Köhler
:Address. Grüne Str. 1 D-2880 Brake
:Copyright. PD
:Language. Oberon
:Translator. Amiga Oberon V2.01 A+L
:Contents. Stellt eine Iconify- Routine zur Verfügung
:History. V1.0, 06-Nov-90: first MODULA-2 Version (Steffen Köhler)
:History. V1.0.o, 16-Jul-91: ported this to OBERON (Christian Stiens)
---------------------------------------------------------------------------*)
MODULE Iconify;
IMPORT I:Intuition,e:Exec,rq:Requests,SYSTEM;
VAR MyWindowPtr: I.WindowPtr;
PROCEDURE Iconify * (VAR x,y: INTEGER; Image: I.ImagePtr);
VAR
MyWindow : I.NewWindow;
IntuiMsg : I.IntuiMessagePtr;
MyGadget : I.Gadget;
FirstClick,
EndFlag : BOOLEAN;
LastSecond,
LastMicro,
Second,
Micro : LONGINT;
BEGIN
MyGadget := I.Gadget(NIL,0,0,0,0,{I.gRelWidth,I.gRelHeight}+I.gadgHNone,
{I.gadgImmediate},I.wDragging,NIL,NIL,NIL,LONGSET{},NIL,0,NIL);
MyWindow := I.NewWindow(0,0,0,0,0,1,LONGSET{I.gadgetDown},
LONGSET{I.noCareRefresh,I.borderless},NIL,
NIL,NIL,NIL,NIL,0,0,-1,-1,{I.wbenchScreen});
MyWindow.leftEdge:= x;
MyWindow.topEdge := y;
MyWindow.width := Image.width;
MyWindow.height := Image.height;
MyWindow.firstGadget := SYSTEM.ADR(MyGadget);
MyWindowPtr := I.OpenWindow(MyWindow);
rq.Assert(MyWindowPtr # NIL,"Iconify-Window konnte nicht geöffnet werden!");
I.DrawImage(MyWindowPtr.rPort,Image^,0,0);
EndFlag := FALSE;
FirstClick := TRUE;
REPEAT
e.WaitPort(MyWindowPtr.userPort);
IntuiMsg := e.GetMsg(MyWindowPtr.userPort) ;
WHILE IntuiMsg # NIL DO
Second := IntuiMsg.time.secs;
Micro := IntuiMsg.time.micro;
e.ReplyMsg(IntuiMsg) ;
IF NOT FirstClick THEN
EndFlag:=I.DoubleClick(LastSecond,LastMicro,Second,Micro);
ELSE
FirstClick:=FALSE;
END;
IntuiMsg := e.GetMsg(MyWindowPtr.userPort) ;
LastSecond:=Second;
LastMicro:=Micro;
END;
UNTIL EndFlag;
x := MyWindowPtr.leftEdge;
y := MyWindowPtr.topEdge;
I.CloseWindow(MyWindowPtr);
MyWindowPtr:=NIL;
END Iconify;
BEGIN
MyWindowPtr := NIL
CLOSE
IF MyWindowPtr # NIL THEN I.CloseWindow(MyWindowPtr) END
END Iconify.